home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / basic / pbtool.exe / PBVIEWER.BAS < prev    next >
BASIC Source File  |  1991-10-31  |  3KB  |  108 lines

  1. '  PROGRAM: PBVIEWER.BAS      ANDY KELLETT  10/16/90
  2. '  THIS PROGRAM ALLOWS VIEWING OF A SPECIFIED FILE AND THE CONTENTS.
  3. '
  4. '
  5. '  USING  POWER BASIC V2.00
  6. '  LAST UPDATED: 10/31/91
  7. '--------------------------------------------------------------------
  8. $INCLUDE "KEYS.INC"
  9. PAGELEN% = 18
  10. VERSION$ = "0.95"
  11. CLS
  12. LOCATE 1,14:PRINT "P B V I E W E R  V";VERSION$;"  BY  A N D Y  K."
  13. LOCATE 12,10:INPUT "ENTER THE FILE NAME TO VIEW: ";FILENAME$
  14. IF FILENAME$ = "" THEN CLS:END
  15. OPEN FILENAME$ FOR BINARY AS #1
  16.   FILE1EOF& = LOF(1)
  17.   IF LOF(1) < 1 THEN
  18.      LOCATE 15,10:PRINT "ERROR OPENING FILE! STARTING OVER!"
  19.      CLOSE #1
  20.      KILL FILENAME$
  21.      DELAY 3.5
  22.      RUN
  23.   END IF
  24.   CLS
  25.   LOCATE 1,10:PRINT "P B V I E W E R  V";VERSION$;"  BY  A N D Y  K.";:_
  26.      PRINT "   FILE IS ";FILENAME$
  27.   LOCATE 2,1:PRINT "  BYTE#  DEC  HEX  ASCII    ";:
  28.  
  29.   QUITFLAG% = 0:RECPOSITION& = 0
  30.   WHILE QUITFLAG% = 0
  31.      SEEK 1, RECPOSITION&
  32.      GET$ 1, PAGELEN%, CHAR$
  33.      LOCATE 2,27:PRINT USING "CURRENT POSITION: #,###,###";RECPOSITION&
  34.      FOR I% = 1 TO PAGELEN%
  35.        TEMP$ = MID$(CHAR$,I%,1)
  36.        LOCATE I% + 3,1
  37.        PRINT USING   "     ##  ###    \\   \\";I% - 1,ASC(TEMP$),_
  38.       HEX$(ASC(TEMP$)),TEMP$
  39.      NEXT I%
  40.      LOCATE 23,5:PRINT_
  41.    "F = Forward   A = bAckward   T = Top   B = Bottom   N = Newfile   Q = Quit";
  42.      LOCATE 24,5:PRINT "or  ";CHR$(25);"          or  ";CHR$(24);
  43.      LOCATE 24,34:PRINT "PGDN forward 2 screens   PGUP back two screens";
  44.      KEYFLAG% = 0
  45.      WHILE KEYFLAG% = 0
  46.     KY$ = INKEY$:KY$ = UCASE$(KY$)
  47.         IF KY$ = "F" OR KY$ = DOWNARROW$ THEN
  48.        KEYFLAG% = 1
  49.            IF RECPOSITION& = FILE1EOF& - PAGELEN% THEN
  50.            '  DO NOTHING
  51.            ELSE
  52.               IF RECPOSITION& > FILE1EOF& - PAGELEN% THEN
  53.                  RECPOSITION& = FILE1EOF& - PAGELEN%
  54.               ELSE
  55.                 RECPOSITION& = RECPOSITION& + PAGELEN%
  56.               END IF
  57.            END IF
  58.            IF RECPOSITION& > FILE1EOF& THEN
  59.               RECPOSITION& = FILE1EOF& - PAGELEN%
  60.        END IF
  61.     END IF
  62.         IF KY$ = "A" OR KY$ = UPARROW$ THEN
  63.        KEYFLAG% = 1
  64.            RECPOSITION& = RECPOSITION& - PAGELEN%
  65.            IF RECPOSITION& < 0 THEN
  66.               RECPOSITION& = 0
  67.        END IF
  68.     END IF
  69.         IF KY$ = "Q" OR KY$ = ESC$ THEN
  70.        KEYFLAG% = 1
  71.        QUITFLAG% = 1
  72.     END IF
  73.         IF KY$ = "N" THEN
  74.            RUN
  75.         END IF
  76.         IF KY$ = "T" THEN
  77.            RECPOSITION& = 0
  78.            KEYFLAG% = 1
  79.         END IF
  80.         IF KY$ = "B" THEN
  81.            RECPOSITION& = FILE1EOF& - PAGELEN%
  82.            KEYFLAG% = 1
  83.         END IF
  84.         IF KY$ = PGUP$ AND RECPOSITION& > (2 * PAGELEN%) THEN
  85.            RECPOSITION& = RECPOSITION& - (2 * PAGELEN%)
  86.            KEYFLAG% = 1
  87.         ELSE
  88.            IF KY$ = PGUP$ THEN
  89.               RECPOSITION& = 0
  90.               KEYFLAG% = 1
  91.            END IF
  92.         END IF
  93.     IF KY$ = PGDOWN$ AND_
  94.            RECPOSITION& < (FILE1EOF& - (2 * PAGELEN%)) THEN
  95.            RECPOSITION& = RECPOSITION& + (2 * PAGELEN%)
  96.            KEYFLAG% = 1
  97.         ELSE
  98.           IF KY$ = PGDOWN$ THEN
  99.              RECPOSITION& = FILE1EOF& - PAGELEN%
  100.              KEYFLAG% = 1
  101.           END IF
  102.         END IF
  103.      WEND
  104.   WEND
  105. CLOSE #1
  106. LOCATE 25,1
  107. END
  108.